package br.com.controller;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;

import br.com.model.Permissao;
import br.com.model.Usuario;
import br.com.model.Questionario;
import br.com.persistence.QuestionarioDao;

@ManagedBean(name="relatorio", eager = true)
public class Relatorio {
	
	@ManagedProperty(value = "#{login.usuario}")
	private Usuario logado;//aqui vai o usuario que estiver logado
	private Usuario usuario;//aqui vai o valor digitado no inputText do relatorio do professor
	
	
	public Relatorio() {
		this.usuario = new Usuario();
	}
	
	/*
	 * se quem estiver logado for um professor e usuario(inputText) estiver vazio retorna uma lista com todos os questionarios
	 * se for um professor e usuario estiver preenchido retorna os questionarios daquele usuario(aluno)
	 * senao retorna os questionarios de quem estiver logado
	 */
	public List<Questionario> getList(){
		
		List<Questionario> quest;
		QuestionarioDao dao = new QuestionarioDao();

		if(this.logado.getPermissao().getIdPermissao() == Permissao.PROFESSOR && this.usuario.getNome().isEmpty())
			quest = dao.selectList();
		
		else if(this.logado.getPermissao().getIdPermissao() == Permissao.PROFESSOR)
			quest = dao.selectList(this.usuario);
		else
			quest = dao.selectList(this.logado);

		return quest;
		
	}
	
	public static void main(String[] args) {
		Relatorio rel = new Relatorio();
		Usuario prof = new Usuario();
		prof.setPermissao(new Permissao(Permissao.PROFESSOR));
		rel.setLogado(prof);
		List<Questionario> list = rel.getList();
		System.out.println("Tamanho da lista do relatorio ->"+list.size());
		QuestionarioDao dao = new QuestionarioDao();
		List<Questionario> listDao = dao.selectList();

		System.out.println("Tamanho da lista do dao ->"+listDao.size());
	}
	
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public Usuario getLogado() {
		return logado;
	}

	public void setLogado(Usuario logado) {
		this.logado = logado;
	}
}
